#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = '汤小洋'

import collections  # 导入模块

'''
迭代：也称为遍历，即循环获取每一个元素
'''

for i in [3, 12, 4, 65, 23]:
    print(i, end=' ')
print()

for i in (3, 12, 4, 65, 23):
    print(i, end=' ')
print()

for i in {3, 12, 4, 65, 23}:
    print(i, end=' ')
print()

for k, v in {'name': 'tom', 'age': 21, 'sex': 'male'}.items():
    print(k, v)
print()

for i in 'hello':
    print(i)

# 判断对象是否可迭代
print(isinstance('hello', collections.Iterable))

# 获取索引和值
# 方式1：自己获取索引
names = ['tom', 'jack', 'mike']
for i in range(len(names)):
    print(i, names[i])

# 方式2：使用enumerate()函数，转换为索引-元素对
print(enumerate(names))
print(isinstance(enumerate(names), collections.Iterable))  # enumerate是可迭代的
for k, v in enumerate(names):
    print(k, v)
print('-------------------------------------------------------')

'''
列表生成式：用来创建list的生成式
'''
# 生成一个[0,99]的list
# print(range(100))
# print(type(range(100)))
a = list(range(100))  # 转换为list
print(a)
print(type(a))

# 生成一个包含[1,100]之间所有偶数的list
# 方式1
b = []
print(isinstance(range(1, 101), collections.Iterable))  # range是可迭代的
for i in range(1, 101):
    if i % 2 == 0:
        b.append(i)
print(b)

# 方式2
# c = [i for i in range(1, 101)]  # 等价于 c = list(range(1, 101))
c = [i for i in range(1, 101) if i % 2 == 0]  # 添加条件
print(c)
